const {Readable,Writable} = require('stream') //通过stream模块获取可读流和可写流

console.log(Readable)
console.log(Writable)

const fs = require('fs') //引入文件模块
const path = require('path')//引入路径处理模块
const fileName = path.resolve(__dirname,'./MyFiles/testRead.txt')
const rs = fs.createReadStream(fileName,{
    encoding:'utf-8',
    start:0, //指定从文件哪个字节位置开始读取,默认值为0,表示从开头读取
    end:undefined, //指定读取到文件的哪个字节位置结束,默认值为undefined,表示读到文件末尾
    highWaterMark:1, //控制读缓冲大小
    autoClose:true,//读完后自动关闭
}) //返回一个ReadAble的子类ReadStream

rs.on("open",()=>{
    console.log('文件被打开了')
})

rs.on("error",()=>{
    console.log('文件出错了')
})

rs.on("data",chunk=>{ //这个事件会反复触发,每次读到流的一些数据就会触发一次这个事件
    console.log('读到部分数据',chunk)//当这个事件被注册上之后就会开始读取文件流中的数据
    rs.pause()//手动暂停
    setTimeout(()=>{
        rs.resume()//恢复
    },2000)
})


// rs.close()//手动关闭文件,文件关闭有两个途径:1.调用close手动关闭,2.文件读完后自动关闭

rs.on("close",()=>{
    console.log('文件关闭了')
})

rs.on('pause',()=>{
    console.log('文件读取暂停')
})

rs.on('resume',()=>{
    console.log('文件读取恢复')
})

